
`timescale 1ns / 1ps

module sys_mem(
	i_addr,
	i_we,
	i_data,
	o_data
);

parameter DATA_WIDTH = 32;
parameter ADDR_WIDTH = 8;
parameter MEM_SIZE	 = 256;

input i_we;
output [DATA_WIDTH-1:0] i_data;
input [ADDR_WIDTH-1:0] i_addr;
output [DATA_WIDTH-1:0] o_data;

reg [DATA_WIDTH-1:0] mem [0:MEM_SIZE-1];

// write operation
always@( i_we or i_addr or i_data )
begin
	if( i_we == 1'b1 ) begin
		mem[ i_addr ] = i_data;
	end
end

// read operation
assign o_data = mem[ i_addr ];

endmodule
